package TestExercises08;

//算法水题
/*
判断任意的一个年份是闰年还是平年
要求:用JDK7和JDK8两种方式判断
提示:
    二月有29天是闰年
    一年有366天是闰年
 */

import java.time.LocalDate;
import java.util.Calendar;

public class Test05 {
    public static void main(String[] args) {

        //JDK7
        //method1();

        //JDK8
        //方法一：
        //月份的范围1~12
        //设定时间为2000年3月1日
        LocalDate ld = LocalDate.of(2000, 3, 1);
        //把时间往前减一天
        LocalDate ld2 = ld.minusDays(1);//或者LocalDate ld2 = ld.plusDays(-1);
        //获取这一天是一个月中的几号
        int day3 = ld2.getDayOfMonth();
        System.out.println(day3);

        //方法二：
        //true：闰年
        //false：平年
        System.out.println(ld.isLeapYear());
    }

    //JDK7
    private static void method1() {
        //简化1：
        //把时间设置为2000年3月1日
        Calendar c1 = Calendar.getInstance();
        c1.set(2000, 2, 1);//月份的范围0~11
        //再把日历往前减一天
        c1.add(Calendar.DAY_OF_MONTH, -1);
        //看当前的时间是28号还是29号？
        int day1 = c1.get(Calendar.DAY_OF_MONTH);
        System.out.println(day1);

        //简化2：
        //把时间设置为2001年1月1日
        Calendar c2 = Calendar.getInstance();
        c2.set(2001, 0, 1);//月份的范围0~11
        //再把日历往前减一天
        c2.add(Calendar.DAY_OF_MONTH, -1);
        //看当前的时间是不是第366天
        int day2 = c2.get(Calendar.DAY_OF_YEAR);
        System.out.println(day2);
    }
}
